// components/modal.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 弹窗宽度
    width: {
      type: Number,
      value: 648
    },
    // 弹窗标题
    title: {
      type: String,
      value: '提示'
    },
    // 弹窗确认文本
    okText: {
      type: String,
      value: '确定'
    },
    // 弹窗取消文本
    cancelText: {
      type: String,
      value: '取消'
    },
    // 显示按钮类型：0: 不显示按钮 1: 显示确认按钮  2: 显示两个按钮 3: 显示取消按钮
    buttonsType: {
      type: Number,
      value: 2
    },
    // 点击其他区域能否隐藏弹窗
    maskClosable: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 弹窗是否显示
    visible: false,
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 显示弹窗
    show() {
      this.setData({
        visible: true
      })
    },
    // 隐藏弹窗
    hide() {
      this.setData({
        visible: false
      })
    },
    // 提交
    confirm(e) {
      if (e?.detail?.item?.confirm) {
        this.triggerEvent('confirm', {
          hide: () => {
            this.hide()
          }
        })
      } else {
        this.triggerEvent('close')
        this.hide()
      }
    },
    // 禁止拖动冒泡
    stopMove() {},
  }
})
